﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using IcbcOpenDemo.Models.Tools;

namespace IcbcOpenDemo.Models
{
    public class RequestPAYENT:BaseAPI
    {
        // 该API的地址,加上开放平台的地址组合成调用API的全路径
        private string PATH = "mybank/enterprise/pay/payent/V2";
        public override string GetPath()
        {
            return PATH;
        }

        #region 该接口的bizcontent部份，请将所有属性的类型都设置为string
        public string trans_code { get { return "PAYENT"; } } //交易代码
        public string tran_date { get; set; } //交易日期：ERP系统产生，格式是yyyyMMdd
        public string tran_time { get; set; } //交易时间：ERP系统产生，格式如HHmmssSSS，精确到毫秒
        public string language { get { return "zh_CN"; } } //语言：zh_CN简体中文，en_US英文，默认zh_CN
        public string f_seq_no { get; set; } //指令包序列号：ERP系统产生，一个集团永远不能重复
        public string zip_flag { get; set; } //报文压缩标识：1：压缩rd区；空/0：不压缩
        public string zip { get; set; } //报文压缩内容：zip算法压缩rd区后再BASE64编码，约定取第一个文件
        public string settle_mode { get; set; } //入账方式：0：逐笔记账；2：并笔记账
        public string instr_count { get; set; } //总笔数
        public string total_amount { get; set; } //总金额：以分为单位
        public string package_name { get; set; } //批量包名

        public List<RequestPAYENTRd> rd { get; set; }
        #endregion
    }

    public class RequestPAYENTRd
    {
        public string uni_busi_id { get; set; } //业务唯一编号：相同指令不重复
        public string i_seq_no { get; set; } //指令顺序号：每笔指令的序号，本包内不重复
        public string schedule_date { get; set; } //预约日期
        public string pay_type { get; set; } //记账处理方式：1：加急；2：普通；3：跨行快汇
        public string payer_account { get; set; } //付款方账号：管家卡付款时选输，如果输入必须为管家卡对应结算账号
        public string payer_cnname { get; set; } //付款方账户名称
        public string payer_enname { get; set; } //付款方账户英文名称：账号付款时，中文名称、英文名称至少输入一项
        public string manager_card_no { get; set; } //管家卡卡号：管家卡付款时必输
        public string manager_card_name { get; set; } //管家卡名称：管家卡付款时选输
        public string payee_account { get; set; } //收款方账号
        public string payee_cnname { get; set; } //收款方账户名称
        public string payee_enname { get; set; } //收款方账户英文名称
        public string io_flag { get; set; } //收款方系统内外标志：1：工行；2：他行
        public string same_city_flag { get; set; } //同城异地标志：1：同城；2：异地
        public string payee_type { get; set; } //对公对私标志：0：对公；1：个人
        public string payee_city { get; set; } //收款方所在城市名称
        public string payee_bank_no { get; set; } //收款方行号：跨行指令要求对方行行号和行名上送正确
        public string payee_bank_name { get; set; } //收款方行名
        public string currency { get; set; } //币种：ISO币种，仅支持人民币
        public string amount { get; set; } //金额：以分为单位
        public string purpose_code { get; set; } //用途代码
        public string purpose { get; set; } //用途中文描述
        public string summary { get; set; } //摘要
        public string summary_en { get; set; } //英文备注
        public string postscript { get; set; } //附言：不得有非法字符，包括 ' " : %
        public string ref_no { get; set; } //业务编号（业务参考号）
        public string related_ref_no { get; set; } //相关业务编号
        public string erp_serial_no { get; set; } //ERP流水号
        public string erp_check_no { get; set; } //ERP支票号
        public string busi_code { get; set; } //业务代码
        public string ori_voucher_type { get; set; } //原始凭证种类
        public string ori_voucher_no { get; set; } //原始凭证号
        public string ori_voucher_name { get; set; } //原始凭证名称
        public string pre_approval_no { get; set; } //预先审批编号
        public string regulation_purpose_code { get; set; } //监管用途代码：0：无用途 1：工资及退休金 2：贷款 3：采购款 4：借款 5：拨款 6：还款 7：交款 8：差旅费 9：运费 10：保证金 11：投资 99：其他

    }
}
